ห้องปฏิบัติการที่ 8: ระบบเครือข่ายสังคมด้วยกราฟ

เป้าหมาย 🎯

  • แบบจำลอง: ระบบเครือข่ายสังคมพื้นฐาน
    • ผู้ใช้ถูกแทนด้วย จุดยอด ในกราฟ.
    • ความสัมพันธ์เพื่อนเป็น เส้นเชื่อมไม่ระบุทิศทาง.
  • งานที่ต้องทำ: ประมวลผลชุดคำสั่งเพื่อสร้างและสอบถามเครือข่าย

การแสดงผล 💾

เราจะใช้ รายการติดกัน เพื่อเก็บข้อมูลกราฟ

มันคืออาร์เรย์ของลิสต์ ลิสต์ที่ตำแหน่ง `i` จะเก็บเพื่อนทั้งหมดของผู้ใช้ `i`

// ความสัมพันธ์เพื่อน: (0,1), (0,2), (1,2)
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[],
]

การดำเนินการ ⚙️

คุณจะต้องสร้างคำสั่งสี่อย่าง:

  • add u v

    เพิ่มความสัมพันธ์เพื่อน

  • degree u

    นับจำนวนเพื่อนของผู้ใช้ u

  • isfriend u v

    ตรวจสอบว่า u และ v เป็นเพื่อนกันหรือไม่

  • count_greater x

    นับจำนวนผู้ใช้ที่มีเพื่อนมากกว่า x คน